package stat

import (
	"core/mysql"
)

type Stat struct {
	ID              int64   `xorm:"pk autoincr id"`                    //
	StatType        string  `xorm:"varchar(25) notnull stat_type"`     // 类型+日期，联合索引
	StatDate        int     `xorm:"int(25)  index notnull  stat_date"` // 日期 如：20190415
	StatCount       int     `xorm:"int(11) notnull stat_count"`        // 统计总数
	StatCardinality int     `xorm:"int(11) notnull stat_cardinality"`  // 去重后总数
	StatMean        float64 `xorm:"float notnull stat_mean"`           // 平均值
}

const StatTable = "stat_list"

func (Stat) TableName() string {
	return "stat_list"
}

func FindStatList(limit int) (list map[string][]Stat, err error) {
	descList := make([]Stat, 0)
	_, err = mysql.FindList(&descList, &mysql.Cond{
		Limit: limit * len(Menus),
		Desc:  "stat_date",
	})
	if err != nil {
		return
	}
	list = make(map[string][]Stat)
	lenList := len(descList)
	for i := lenList - 1; i >= 0; i-- {
		v := descList[i]
		if list[v.StatType] == nil {
			list[v.StatType] = []Stat{v}
		} else {
			list[v.StatType] = append(list[v.StatType], v)
		}
	}
	return
}
